package the.broccoli.uc.mapper;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.wisteria.framework.web.mvc.dao.SuperMapper;
import the.broccoli.uc.dto.Secret;
import the.broccoli.uc.entity.User;

import java.util.Date;

/**
 * <p>
 * 用户 Mapper 接口
 * </p>
 * @since 2018-10-12
 */
@Mapper
public interface UserMapper extends SuperMapper<User> {

    /**
     * 通过登录账号，手机号码，邮箱地址。获取用户信息
     *
     * @param loginAccount 登录账号、手机号码、邮箱地址
     * @return 用户信息
     */
    User selectByAccount(@Param("loginAccount") String loginAccount);

    /**
     * 修改登录密码
     * @param userId        用户ID
     * @param password      新密码
     * @param salt          密码加盐
     * @param modifiedId    修改人ID
     * @param modifiedName  修改人姓名
     * @param modifiedTime  修改时间
     */
    void updatePassword(@Param("userId") String userId, @Param("password") String password, @Param("salt") String salt, @Param("modifiedId") String modifiedId, @Param("modifiedName") String modifiedName, @Param("modifiedTime") Date modifiedTime);

    /**
     * 获取登录密码
     * @param userId    用户ID
     */
    Secret selectPassword(@Param("userId") String userId);
}
